<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CANopenNode: Basic definitions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CANopenNode
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__CO__dataTypes.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">Basic definitions<div class="ingroups"><a class="el" href="group__CO__CANopen__301.html">CANopen_301</a> &raquo; <a class="el" href="group__CO__driver.html">Driver</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Target specific basic definitions and data types according to Misra C specification.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaed3e1bffaf912485092fc20193705f35"><td class="memItemLeft" align="right" valign="top"><a id="gaed3e1bffaf912485092fc20193705f35"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaed3e1bffaf912485092fc20193705f35">CO_LITTLE_ENDIAN</a></td></tr>
<tr class="memdesc:gaed3e1bffaf912485092fc20193705f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">CO_LITTLE_ENDIAN or CO_BIG_ENDIAN must be defined. <br /></td></tr>
<tr class="separator:gaed3e1bffaf912485092fc20193705f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="memItemLeft" align="right" valign="top"><a id="ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga1717fcaabbe2cd6cd9fc0bc0cb917a6c">CO_SWAP_16</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf87da54942e3a0ff159688c5e0e267b"><td class="memItemLeft" align="right" valign="top"><a id="gadf87da54942e3a0ff159688c5e0e267b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadf87da54942e3a0ff159688c5e0e267b">CO_SWAP_32</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:gadf87da54942e3a0ff159688c5e0e267b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:gadf87da54942e3a0ff159688c5e0e267b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec0fc209357883f42d66cd2cdaa7236f"><td class="memItemLeft" align="right" valign="top"><a id="gaec0fc209357883f42d66cd2cdaa7236f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaec0fc209357883f42d66cd2cdaa7236f">CO_SWAP_64</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:gaec0fc209357883f42d66cd2cdaa7236f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:gaec0fc209357883f42d66cd2cdaa7236f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="memItemLeft" align="right" valign="top"><a id="ga070d2ce7b6bb7e5c05602aa8c308d0c4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>&#160;&#160;&#160;(0)</td></tr>
<tr class="memdesc:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL, for general usage. <br /></td></tr>
<tr class="separator:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memItemLeft" align="right" valign="top"><a id="ga41f9c5fb8b08eb5dc3edce4dcb37fee7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical true, for general use. <br /></td></tr>
<tr class="separator:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65e9886d74aaee76545e83dd09011727"><td class="memItemLeft" align="right" valign="top"><a id="ga65e9886d74aaee76545e83dd09011727"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga65e9886d74aaee76545e83dd09011727">false</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga65e9886d74aaee76545e83dd09011727"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical false, for general use. <br /></td></tr>
<tr class="separator:ga65e9886d74aaee76545e83dd09011727"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga449976458a084f880dc8e3d29e7eb6f5"><td class="memItemLeft" align="right" valign="top"><a id="ga449976458a084f880dc8e3d29e7eb6f5"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a></td></tr>
<tr class="memdesc:ga449976458a084f880dc8e3d29e7eb6f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean data type for general use. <br /></td></tr>
<tr class="separator:ga449976458a084f880dc8e3d29e7eb6f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef44329758059c91c76d334e8fc09700"><td class="memItemLeft" align="right" valign="top"><a id="gaef44329758059c91c76d334e8fc09700"></a>
typedef signed char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaef44329758059c91c76d334e8fc09700">int8_t</a></td></tr>
<tr class="memdesc:gaef44329758059c91c76d334e8fc09700"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER8 in CANopen (0002h), 8-bit signed integer. <br /></td></tr>
<tr class="separator:gaef44329758059c91c76d334e8fc09700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="memItemLeft" align="right" valign="top"><a id="ga932e6ccc3d54c58f761c1aead83bd6d7"></a>
typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga932e6ccc3d54c58f761c1aead83bd6d7">int16_t</a></td></tr>
<tr class="memdesc:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER16 in CANopen (0003h), 16-bit signed integer. <br /></td></tr>
<tr class="separator:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb828ef50c2dbb783109824e94cf6c47"><td class="memItemLeft" align="right" valign="top"><a id="gadb828ef50c2dbb783109824e94cf6c47"></a>
typedef signed long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadb828ef50c2dbb783109824e94cf6c47">int32_t</a></td></tr>
<tr class="memdesc:gadb828ef50c2dbb783109824e94cf6c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER32 in CANopen (0004h), 32-bit signed integer. <br /></td></tr>
<tr class="separator:gadb828ef50c2dbb783109824e94cf6c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga831d6234342279926bb11bad3a37add9"><td class="memItemLeft" align="right" valign="top"><a id="ga831d6234342279926bb11bad3a37add9"></a>
typedef signed long long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga831d6234342279926bb11bad3a37add9">int64_t</a></td></tr>
<tr class="memdesc:ga831d6234342279926bb11bad3a37add9"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER64 in CANopen (0015h), 64-bit signed integer. <br /></td></tr>
<tr class="separator:ga831d6234342279926bb11bad3a37add9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba7bc1797add20fe3efdf37ced1182c5"><td class="memItemLeft" align="right" valign="top"><a id="gaba7bc1797add20fe3efdf37ced1182c5"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></td></tr>
<tr class="memdesc:gaba7bc1797add20fe3efdf37ced1182c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED8 in CANopen (0005h), 8-bit unsigned integer. <br /></td></tr>
<tr class="separator:gaba7bc1797add20fe3efdf37ced1182c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="memItemLeft" align="right" valign="top"><a id="ga1f1825b69244eb3ad2c7165ddc99c956"></a>
typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a></td></tr>
<tr class="memdesc:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED16 in CANopen (0006h), 16-bit unsigned integer. <br /></td></tr>
<tr class="separator:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33594304e786b158f3fb30289278f5af"><td class="memItemLeft" align="right" valign="top"><a id="ga33594304e786b158f3fb30289278f5af"></a>
typedef unsigned long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a></td></tr>
<tr class="memdesc:ga33594304e786b158f3fb30289278f5af"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED32 in CANopen (0007h), 32-bit unsigned integer. <br /></td></tr>
<tr class="separator:ga33594304e786b158f3fb30289278f5af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad27ed092432b64ff558d2254c278720f"><td class="memItemLeft" align="right" valign="top"><a id="gad27ed092432b64ff558d2254c278720f"></a>
typedef unsigned long long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gad27ed092432b64ff558d2254c278720f">uint64_t</a></td></tr>
<tr class="memdesc:gad27ed092432b64ff558d2254c278720f"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED64 in CANopen (001Bh), 64-bit unsigned integer. <br /></td></tr>
<tr class="separator:gad27ed092432b64ff558d2254c278720f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4611b605e45ab401f02cab15c5e38715"><td class="memItemLeft" align="right" valign="top"><a id="ga4611b605e45ab401f02cab15c5e38715"></a>
typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga4611b605e45ab401f02cab15c5e38715">float32_t</a></td></tr>
<tr class="memdesc:ga4611b605e45ab401f02cab15c5e38715"><td class="mdescLeft">&#160;</td><td class="mdescRight">REAL32 in CANopen (0008h), single precision floating point value, 32-bit. <br /></td></tr>
<tr class="separator:ga4611b605e45ab401f02cab15c5e38715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55f3ae81b5bc9053760baacf57e47f4"><td class="memItemLeft" align="right" valign="top"><a id="gac55f3ae81b5bc9053760baacf57e47f4"></a>
typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gac55f3ae81b5bc9053760baacf57e47f4">float64_t</a></td></tr>
<tr class="memdesc:gac55f3ae81b5bc9053760baacf57e47f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">REAL64 in CANopen (0011h), double precision floating point value, 64-bit. <br /></td></tr>
<tr class="separator:gac55f3ae81b5bc9053760baacf57e47f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="memItemLeft" align="right" valign="top"><a id="ga40bb5262bf908c328fbcfbe5d29d0201"></a>
typedef char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga40bb5262bf908c328fbcfbe5d29d0201">char_t</a></td></tr>
<tr class="memdesc:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="mdescLeft">&#160;</td><td class="mdescRight">VISIBLE_STRING in CANopen (0009h), string of signed 8-bit values. <br /></td></tr>
<tr class="separator:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00f664c467579d7b2839d6926b6f33a6"><td class="memItemLeft" align="right" valign="top"><a id="ga00f664c467579d7b2839d6926b6f33a6"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga00f664c467579d7b2839d6926b6f33a6">oChar_t</a></td></tr>
<tr class="memdesc:ga00f664c467579d7b2839d6926b6f33a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">OCTET_STRING in CANopen (000Ah), string of unsigned 8-bit values. <br /></td></tr>
<tr class="separator:ga00f664c467579d7b2839d6926b6f33a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc433a2a90dacd3b2b3801dd9431c254"><td class="memItemLeft" align="right" valign="top"><a id="gadc433a2a90dacd3b2b3801dd9431c254"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadc433a2a90dacd3b2b3801dd9431c254">domain_t</a></td></tr>
<tr class="memdesc:gadc433a2a90dacd3b2b3801dd9431c254"><td class="mdescLeft">&#160;</td><td class="mdescRight">DOMAIN in CANopen (000Fh), used to transfer a large block of data. <br /></td></tr>
<tr class="separator:gadc433a2a90dacd3b2b3801dd9431c254"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Target specific basic definitions and data types according to Misra C specification. </p>
<p>Must be defined in the <b><a class="el" href="CO__driver__target_8h.html" title="Linux socketCAN specific definitions for CANopenNode. ">CO_driver_target.h</a></b> file.</p>
<p>Depending on processor or compiler architecture, one of the two macros must be defined: CO_LITTLE_ENDIAN or CO_BIG_ENDIAN. CANopen itself is little endian.</p>
<p>Basic data types may be specified differently on different architectures. Usually <code>true</code> and <code>false</code> are defined in <code>&lt;stdbool.h&gt;</code>, <code>NULL</code> is defined in <code>&lt;stddef.h&gt;</code>, <code>int8_t</code> to <code>uint64_t</code> are defined in <code>&lt;stdint.h&gt;</code>. </p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Jun 9 2020 17:29:32 for CANopenNode by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
